# 1.一个普通类的创建
# class student():
#     def __init__(self,name):
#         self.name = name
# xiaoming = student('xiaoming')
# print(xiaoming.name)

# 2.使用type类去动态的创建类

# 第一步，要创建用于动态创建 class_dict 的字符串。注：这个字符串里面就是在定义要创建的里面的类的内容。
# 扩展应用：既然这个 class_body 需要是一个字符串，那我们在实际使用中，可以将这个 class_body字符串放在一个文本文件里面，通过读取文件内容去动态生成类的内容。
# 这样做的好处就是我们可以通过修改文本文件的内容，在不修改代码的情况下 修改软件的功能！！！  十分牛逼
class_body = '''
def __init__(self,name):
    self.name = name
def study(self):
    print('studying')
def play(self):
    print('playing')
def showname(self):
    print(self.name)
'''
# 第二步，通过class_body字符串生成class_dict
class_dict = {}
exec(class_body,globals(),class_dict) # 用内置的函数生成类的内容并赋值给 class_dict字典
type_student = type('type_student',(object,),class_dict) # 使用 type类 动态生成新的类，其中 传给type函数的参数分别代表 类的名字，父类(必须是元组，用于多继承)，类的内容字典
newstudent = type_student('maxiaotiao')
newstudent.study()
newstudent.play()
newstudent.showname()